<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.       -->
<!---                                                                           -->
<!--- Redistribution and use in source and binary forms, with or without        -->
<!--- modification, are permitted provided that the following conditions are    -->
<!--- met:                                                                      -->
<!---     * Redistributions of source code must retain the above copyright      -->
<!---       notice, this list of conditions and the following disclaimer.       -->
<!---     * Redistributions in binary form must reproduce the above             -->
<!---       copyright notice, this list of conditions and the following         -->
<!---       disclaimer in the documentation and/or other materials provided     -->
<!---       with the distribution.                                              -->
<!---     * Neither the name of The Linux Foundation nor the names of its       -->
<!---       contributors may be used to endorse or promote products derived     -->
<!---       from this software without specific prior written permission.       -->
<!---                                                                           -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED              -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF      -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT    -->
<!--- ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS    -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR    -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF      -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR           -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,     -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE      -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN    -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                             -->
<sound_trigger_platform_info>
    <param version="0x0103" /> <!-- this must be the first param -->
<!--- Version History:                                                          -->
<!--- 0x0101: Legacy version.                                                   -->
<!--- 0x0102: Includes acdb_ids param with the gcs_usecase tag. This matches    -->
<!--- the gcs_usecase with the acdb device that uses it.                        -->
<!--- 0x0103: app_type and in_channels added to <lsm usecase> and out_channels  -->
<!--- added to <adm_config>                                                     -->

    <common_config>
        <param implementer_version="0x0100" />
        <param max_cpe_sessions="1" />
        <param max_wdsp_sessions="2" />
        <param max_ape_sessions="8" />
        <param enable_failure_detection="false" />
        <param support_device_switch="false" />
        <!-- Transition will only occur if execution_type="DYNAMIC" -->
        <param transit_to_adsp_on_playback="true" />
        <param transit_to_adsp_on_battery_charging="false" />
        <!-- Below backend params must match with port used in mixer path file -->
        <!-- param used to configure backend sample rate, format and channels -->
        <param backend_port_name="SLIM_1_TX" />
        <!-- Param used to match and obtain device backend index -->
        <param backend_dai_name="SLIMBUS_1_TX" />
        <!-- Param used to indicate if SVA has dedicated SLIM ports -->
        <param dedicated_sva_path="true" />
    </common_config>
    <acdb_ids>
        <param DEVICE_HANDSET_MIC_APE="100" />
        <param DEVICE_HANDSET_MIC_CPE="128" />
        <param DEVICE_HANDSET_MIC_ECPP_CPE="128" />
        <param DEVICE_HANDSET_TMIC_CPE="130" />
        <param DEVICE_HANDSET_TMIC_APE="157" />
        <param DEVICE_HANDSET_MIC_PP_APE="135" />
        <param DEVICE_HANDSET_QMIC_APE="137" />
        <param DEVICE_HEADSET_MIC_CPE="139" />
        <param DEVICE_HEADSET_MIC_APE="141" />
        <param DEVICE_HANDSET_DMIC_APE="149" />
        <param DEVICE_HANDSET_DMIC_CPE="148" />
    </acdb_ids>

    <!-- Multiple sound_model_config tags can be listed, each with unique   -->
    <!-- vendor_uuid. The below tag represents QTI SVA engine sound model   -->
    <!-- configuration. ISV must use their own unique vendor_uuid.          -->

    <!-- QTI SVA -->
    <sound_model_config>
        <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
        <param execution_type="DYNAMIC" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
        <param library="libsmwrapper.so" />
        <param max_cpe_phrases="6" />
        <param max_cpe_users="3" />
        <param max_ape_phrases="20" />
        <param max_ape_users="10" />
        <!-- Profile specific data which the algorithm can support -->
        <param sample_rate="16000" />
        <param bit_width="16" />
        <param out_channels="1"/> <!-- Module output channels -->

        <!-- adm_cfg_profile should match with the one defined under adm_config -->
        <!-- Set it to NONE if LSM directly connects to AFE -->
        <param adm_cfg_profile="FFECNS" />
        <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC"   -->
        <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
        <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values          -->
        <param fluence_type="FLUENCE" />
        <!-- wdsp_fluence_type: fluence disabled: "NONE" -->
        <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
        <param wdsp_fluence_type="NONE" />
        <arm_ss_usecase>
            <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION"  -->
            <param sm_detection_type= "KEYWORD_DETECTION" />
            <param sm_id="0x2" />
            <param module_lib="libcapiv2svacnn.so"/>
            <param sample_rate="16000"/>
            <param bit_wdith="16"/>
            <param channel_count="1"/>
        </arm_ss_usecase>
        <arm_ss_usecase>
            <param sm_detection_type= "USER_VERIFICATION" />
            <param sm_id="0x4" />
            <param module_lib="libcapiv2vop.so"/>
            <param sample_rate="16000"/>
            <param bit_wdith="16"/>
            <param channel_count="1"/>
        </arm_ss_usecase>
        <gcs_usecase>
            <param uid="0x1" />
            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
            <!-- module_id, instance_id, param_id -->
            <param load_sound_model_ids="0x00012C0D, 0x2, 0x00012C14" />
            <param confidence_levels_ids="0x00012C0D, 0x2, 0x00012C28" />
            <param detection_event_ids="0x00012C0D, 0x2, 0x00012B05" />
            <param read_cmd_ids="0x00020013, 0x2, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x2, 0x00020016" />
            <param custom_config_ids="0x00012C0D, 0x2, 0x00012C20" />
            <param det_event_type_ids="0x00012C0D, 0x2, 0x00012C2A" />
        </gcs_usecase>
        <gcs_usecase>
            <param uid="0x2" />
            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
            <param load_sound_model_ids="0x00012C0D, 0x3, 0x00012C14" />
            <param confidence_levels_ids="0x00012C0D, 0x3, 0x00012C28" />
            <param detection_event_ids="0x00012C0D, 0x3, 0x00012B05" />
            <param read_cmd_ids="0x00020013, 0x3, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x3, 0x00020016" />
            <param custom_config_ids="0x00012C0D, 0x3, 0x00012C20" />
            <param det_event_type_ids="0x00012C0D, 0x3, 0x00012C2A" />
        </gcs_usecase>
        <gcs_usecase>
            <param uid="0x7" />
            <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
            <param load_sound_model_ids="0x00012C0D, 0x7, 0x00012C14" />
            <param confidence_levels_ids="0x00012C0D, 0x7, 0x00012C28" />
            <param detection_event_ids="0x00012C0D, 0x7, 0x00012B05" />
            <param read_cmd_ids="0x00020013, 0x7, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x7, 0x00020016" />
            <param custom_config_ids="0x00012C0D, 0x7, 0x00012C20" />
            <param det_event_type_ids="0x00012C0D, 0x7, 0x00012C2A" />
        </gcs_usecase>
        <gcs_usecase>
            <param uid="0x8" />
            <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
            <param load_sound_model_ids="0x00012C0D, 0x8, 0x00012C14" />
            <param confidence_levels_ids="0x00012C0D, 0x8, 0x00012C28" />
            <param detection_event_ids="0x00012C0D, 0x8, 0x00012B05" />
            <param read_cmd_ids="0x00020013, 0x8, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x8, 0x00020016" />
            <param custom_config_ids="0x00012C0D, 0x8, 0x00012C20" />
            <param det_event_type_ids="0x00012C0D, 0x8, 0x00012C2A" />
        </gcs_usecase>
        <!-- Module and param ids with which the algorithm is integrated
            in non-graphite firmware (note these must come after gcs params)
            Extends flexibility to have different ids based on execution type.
            valid execution_type values: "WDSP" "ADSP" -->
        <lsm_usecase>
            <param execution_mode="ADSP" />
            <param app_type="2" /> <!-- app type used in ACDB -->
            <param in_channels="1"/> <!-- Module input channels -->
            <param load_sound_model_ids="0x00012C1C, 0x00012C14" />
            <param unload_sound_model_ids="0x00012C1C, 0x00012C15" />
            <param confidence_levels_ids="0x00012C1C, 0x00012C07" />
            <param operation_mode_ids="0x00012C1C, 0x00012C02" />
            <param polling_enable_ids="0x00012C1C, 0x00012C1B" />
            <param custom_config_ids="0x00012C1C, 0x00012C20" />
            <param det_event_type_ids="0x00012C1C, 0x00012C2C" />
        </lsm_usecase>

        <!-- format: "ADPCM_packet" or "PCM_packet" !-->
        <!-- transfer_mode: "FTRT" or "RT" -->
        <!--  kw_duration is in milli seconds. It is valid only for FTRT
            transfer mode -->
        <param capture_keyword="PCM_packet, RT, 2000" />
        <param client_capture_read_delay="2000" />
    </sound_model_config>

    <!-- QTI Music Detection !-->
    <sound_model_config>
        <param vendor_uuid="876c1b46-9d4d-40cc-a4fd-4d5ec7a80e47" />
        <param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
        <param library="libsmwrapper.so" />
        <param max_cpe_phrases="1" />
        <param max_cpe_users="1" />
        <param max_ape_phrases="1" />
        <param max_ape_users="1" />
        <!-- Profile specific data which the algorithm can support -->
        <param sample_rate="16000" />
        <param bit_width="16" />
        <param out_channels="1"/> <!-- Module output channels -->
        <!-- adm_cfg_profile should match with the one defined under adm_config -->
        <!-- Set it to NONE if LSM directly connects to AFE -->
        <param adm_cfg_profile="NONE" />
        <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC"   -->
        <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
        <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values          -->
        <param fluence_type="FLUENCE_DMIC" />
        <!-- wdsp_fluence_type: fluence disabled: "NONE" -->
        <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
        <param wdsp_fluence_type="NONE" />
        <gcs_usecase>
            <param uid="0x5" />
            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
            <!-- module_id, instance_id, param_id -->
            <param load_sound_model_ids="0x00012C2E, 0x6, 0x00012C14" />
            <param confidence_levels_ids="0x00012C2E, 0x6, 0x00012C28" />
            <param detection_event_ids="0x00012C2E, 0x6, 0x00012B05" />
            <param read_cmd_ids="0x00020013, 0x6, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x6, 0x00020016" />
            <param custom_config_ids="0x00012C2E, 0x6, 0x00012C2D" />
            <param det_event_type_ids="0x00012C2E, 0x6, 0x00012C2C" />
        </gcs_usecase>
        <!-- Module and param ids with which the algorithm is integrated
            in non-graphite firmware (note these must come after gcs params)
            Extends flexibility to have different ids based on execution type.
            valid execution_type values: only "ADSP" -->
        <lsm_usecase>
            <param execution_mode="ADSP" />
            <param app_type="4" /> <!-- app type for MD used in ACDB -->
            <param in_channels="1"/> <!-- Module input channels -->
            <param load_sound_model_ids="0x00012C22, 0x00012C14" />
            <param unload_sound_model_ids="0x00012C22, 0x00012C15" />
            <param confidence_levels_ids="0x00012C22, 0x00012C07" />
            <param det_event_type_ids="0x00012C22, 0x00012C2C" />
            <param custom_config_ids="0x00012C22, 0x00012C30" />
        </lsm_usecase>

        <!-- format: "ADPCM_packet" or "PCM_packet" !-->
        <!-- transfer_mode: "FTRT" or "RT" -->
        <!--  kw_duration is in milli seconds. It is valid only for FTRT
            transfer mode -->
        <param capture_keyword="PCM_packet, FTRT, 1500" />
        <param client_capture_read_delay="2000" />
    </sound_model_config>

    <!-- Google Hotword -->
    <sound_model_config>
        <param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
        <param execution_type="DYNAMIC" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
        <param library="none" />
        <param max_cpe_phrases="1" />
        <param max_cpe_users="1" />
        <param max_ape_phrases="1" />
        <param max_ape_users="1" />
        <!-- Profile specific data which the algorithm can support -->
        <param sample_rate="16000" />
        <param bit_width="16" />
        <param out_channels="1"/> <!-- Module output channels -->
        <!-- adm_cfg_profile should match with the one defined under adm_config -->
        <!-- Set it to NONE if LSM directly connects to AFE -->
        <param adm_cfg_profile="FFECNS" />
        <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC"   -->
        <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
        <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values          -->
        <param fluence_type="FLUENCE" />
        <!-- wdsp_fluence_type: fluence disabled: "NONE" -->
        <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_QMIC" -->
        <param wdsp_fluence_type="NONE" />
        <gcs_usecase>
            <param uid="0x3" />
            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HEADSET_MIC_CPE" />
            <param load_sound_model_ids="0x18000001, 0x4, 0x00012C14" />
            <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
            <param detection_event_ids="0x18000001, 0x4, 0x00012C29" />
            <param custom_config_ids="0x18000001, 0x4, 0x00012C20" />
            <param read_cmd_ids="0x00020013, 0x4, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x4, 0x00020016" />
        </gcs_usecase>
        <gcs_usecase>
            <param uid="0x4" />
            <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
            <param load_sound_model_ids="0x18000001, 0x5, 0x18000100" />
            <param start_engine_ids="0x18000001, 0x5, 0x18000101" />
            <param confidence_levels_ids="0x18000001, 0x5, 0x00012C28" />
            <param detection_event_ids="0x18000001, 0x5, 0x00012C29" />
            <param custom_config_ids="0x18000001, 0x5, 0x00012C20" />
            <param read_cmd_ids="0x00020013, 0x5, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x5, 0x00020016" />
        </gcs_usecase>

        <lsm_usecase>
            <param execution_mode="ADSP" />
            <param app_type="3" /> <!-- app type used in ACDB -->
            <param in_channels="1"/> <!-- Module input channels -->
            <param load_sound_model_ids="0x18000001, 0x00012C14" />
            <param unload_sound_model_ids="0x18000001, 0x00012C15" />
            <param confidence_levels_ids="0x18000001, 0x00012C07" />
            <param operation_mode_ids="0x18000001, 0x00012C02" />
            <param polling_enable_ids="0x18000001, 0x00012C1B" />
            <param custom_config_ids="0x18000001, 0x00012C20" />
        </lsm_usecase>

        <!-- format: "ADPCM_packet" or "PCM_packet" !-->
        <!-- transfer_mode: "FTRT" or "RT" -->
        <!--  kw_duration is in milli seconds. It is valid only for FTRT
            transfer mode -->
        <param capture_keyword="PCM_raw, FTRT, 2000" />
        <param client_capture_read_delay="2000" />
    </sound_model_config>

    <!-- Google Music Detection -->
    <sound_model_config>
        <param vendor_uuid="9f6ad62a-1f0b-11e7-87c5-40a8f03d3f15" />
        <param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
        <param library="none" />
        <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_QMIC" -->
        <param wdsp_fluence_type="NONE" />
        <gcs_usecase>
            <param uid="0x6" />
            <param acdb_devices="DEVICE_HANDSET_MIC_CPE" />
            <param load_sound_model_ids="0x18000001, 0x4, 0x18000102" />
            <param start_engine_ids="0x18000001, 0x4, 0x18000103" />
            <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
            <param detection_event_ids="0x18000001, 0x4, 0x00012C29" />
            <param custom_config_ids="0x18000001, 0x4, 0x00012C20" />
            <param read_cmd_ids="0x00020013, 0x7, 0x00020015" />
            <param read_rsp_ids="0x00020013, 0x7, 0x00020016" />
        </gcs_usecase>
        <!--  kw_duration is in milli seconds. It is valid only for FTRT
            transfer mode -->
        <param capture_keyword="MULAW_raw, FTRT, 5000" />
        <param client_capture_read_delay="2000" />
    </sound_model_config>

    <!-- Multiple adm_config tags can be listed, each with unique profile name. -->
    <!-- app_type to match corresponding value from ACDB -->
    <adm_config>
        <param adm_cfg_profile="DEFAULT" />
        <param app_type="69938" />
        <param sample_rate="16000" />
        <param bit_width="16" />
    </adm_config>

    <adm_config>
        <param adm_cfg_profile="FLUENCE" />
        <param app_type="69944" />
        <param sample_rate="16000" />
        <param bit_width="16" />
    </adm_config>

    <adm_config>
        <param adm_cfg_profile="FLUENCE_STEREO" />
        <param app_type="69948" />
        <param sample_rate="16000" />
        <param bit_width="16" />
    </adm_config>

    <adm_config>
        <param adm_cfg_profile="FFECNS" />
        <param app_type="69947" />
        <param sample_rate="16000" />
        <param bit_width="16" />
        <param out_channels="1"/>
    </adm_config>

    <!-- backend_type tag defines backend type for each device -->
    <!-- Default value is assumed for devices that are not listed here -->
    <backend_type>
        <param DEVICE_HANDSET_MIC_ECPP_CPE="BACKEND_ECPP" />
    </backend_type>
</sound_trigger_platform_info>
